// function Person(name,age){
//   this.name = name
//   this.age = age
// }

// Person.prototype.sayName = function(){
//   console.log(this.name)
// }

// const p = new Person('tom',18)

// p.sayName()

// function Text(name){
//   this.name = name

//   return ({age:18})
// }
// const t = new Text('jiang')

// console.log(t.name)

// myNew\

// 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

// function myNew(Func, ...args) {
//   // 创建一个新对象
//   const obj = {};
//   obj.__proto__ = Func.prototype;


//   let result = Func.apply(obj, args);

//   return result instanceof Object ? result : obj;
// }

// function Person(name, age) {
//   this.name = name;
//   this.age = age;
// }

// Person.prototype.sayName = function(){
//   console.log(this.name)
// }

// let p = myNew(Person, 'jiang', 18);

// p.sayName()

// 22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222

function Person(name) {
  this.name = name
}

Person.prototype.sayName = function(){
  console.log(this.name)
}

function myNew(FUNC,...arg){
  // let obj = {}
  // obj.__proto__ = FUNC.prototype
  let obj = Object.create(FUNC.prototype)
  FUNC.call(obj,...arg)
  return obj
}

let Son = myNew(Person,'jiang')

console.log(Son.name)

Son.sayName()